package com.xinqi.modules.discuss.discuss.dto.req;

import com.xinqi.common.green.annotation.Text;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 讨论 -- 新增请求
 *
 * @version V1.0
 * @Title:
 * @ClassName: com.xinqi.modules.course.course.discuss.dto.req.CourseDiscussCreateDTO.java
 * @Description:
 * @Copyright 星齐科技（云南）有限公司 - Powered By 技术部
 * @author: yyzhen
 * @date: 2023/3/14 13:35
 */
@Data
public class CourseDiscussCreateDTO implements Serializable {

    /**
     * 标题
     */
    @Text
    @NotEmpty(message = "{course.discuss.title.not.blank}")
    @Size(min = 0, max = 25, message = "{course.discuss.title.length.valid}")
    private String title;
    /**
     * 详情内容
     */
    @Text
    @Size(min = 0, max = 300, message = "{course.discuss.content.length.valid}")
    private String content;
    /**
     * 附件
     */
    private String fileurls;
    /**
     * 视频j集合
     */
    private String videos;
    /**
     * 图片集合
     */
    private String images;
    /**
     * 班级ID
     */
    @NotNull(message = "{course.discuss.classId.not.blank}")
    private Long classId;
    /**
     * 必须回复 0否 1是 (讨论专用)
     */
    private Integer isReplay;
    /**
     * 评论后可查看评论
     */
    private Integer commentView;
    /**
     * 是否同步发布到班级 0否 1是
     */
    private Integer synchro;
    /**
     * 同步的班级ID集合
     */
    private String classIds;
    /**
     * 是否立即发布，0否  1是
     */
    private Integer nowRelease;
    /**
     * 定时发布，0不定时 1定时
     */
    private Integer timing;
    /**
     * 发布时间
     */
    private LocalDateTime releaseTime;
    /**
     * 截止时间(各种类型结束时间)
     */
    @NotNull(message = "{course.discuss.endtime.not.blank}")
    private LocalDateTime endTime;

    /**
     * 章节id
     */
    private Long chapterId;

    @Schema(title = "操作用户ID(内部流转参数，不对外)", hidden = true)
    private Long operationUserId;
}
